package com.zxy.ziems.server.service;

import com.zxy.btp.common.response.PageResult;
import com.zxy.ziems.server.domain.Resource;
import com.zxy.ziems.server.domain.Role;
import com.zxy.ziems.server.domain.RoleResourceRel;
import com.zxy.ziems.server.dto.ResourceTree;
import com.zxy.ziems.server.dto.RoleDto;
import com.zxy.ziems.server.dto.RoleQueryDto;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

/**
 * @author missrain
 * @date 2021/8/30 4:46 下午
 * @Email:wangsiyu-hq@boe.com.cn
 */
public interface RoleService {
    /**
     * 创建角色
     * @param roleDto
     * @return
     */
    String addOrUpdate(RoleDto roleDto);

    void delete(String roleId);

    /**
     * 角色分页列表
     * @param dto
     * @return
     */
    PageResult<Role> pageList(RoleQueryDto dto);

    /**
     * 查看角色详情
     * @param roleId
     * @return
     */
    RoleDto detail(String roleId);

    /**
     * 查询所有角色
     * @param dto
     * @return
     */
    List<Role> list(RoleQueryDto dto);

    List<ResourceTree> getLoginMenu(String userId);
    /**
     * 根据角色id查询角色
     * @param ids
     * @return
     */
    List<Role> listByIds(Collection<? extends Serializable> ids);

    List<ResourceTree> getAllResourceTree();

    List<Resource> listByUserId(String userId);

    List<RoleResourceRel> roleResourceRelListByUserId(String userId);
}
